package com.fadada.api;


import com.fasc.open.api.bean.base.BaseRes;
import com.fasc.open.api.bean.common.OpenId;
import com.fasc.open.api.bean.req.doctemplate.DocTemplateDetailReq;

import com.fasc.open.api.bean.req.doctemplate.DocTemplateListFilterInfo;
import com.fasc.open.api.bean.req.doctemplate.GetDocTemplateListReq;
import com.fasc.open.api.bean.res.doctemplate.DocTemplateDetailRes;
import com.fasc.open.api.bean.res.doctemplate.DocTemplateListRes;
import com.fasc.open.api.client.DocTemplateClient;
import com.fasc.open.api.enums.common.IdTypeEnum;
import com.fasc.open.api.exception.ApiException;
import com.fasc.open.api.utils.ResultUtil;


/**
 * @author FDD
 * @version 5.0.0
 * @ClassName DocTemplateDemo.java
 * @Description 文档模板管理接口demo
 * @Param
 * @createTime 2021/9/24 15:32
 */
public class DocTemplateDemo extends BaseDemo{

    private static DocTemplateClient docTemplateClient;

    public static void main(String[] args) {
        try {
            BaseDemo baseDemo = new BaseDemo();
            openApiClient = baseDemo.getClient();
            docTemplateClient = new DocTemplateClient(openApiClient);
            //获取应用accessToken
            accessToken = baseDemo.getAccessToken(openApiClient);
            //查询文档模板列表
            docTempalteList();
            //获取文档模板详情
            docTempalteDetail();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    /**
     * 查询文档模板列表
     *
     * **接口说明：**查询文档模板列表，列表根据文档模板更新时间倒序排序返回。
     *
     * **适用场景**：可通过该接口获取应用系统下或应用系统的企业或个人用户名下的文档模板列表。
     */
    public static void docTempalteList() throws ApiException {
        GetDocTemplateListReq docTemplateListReq = new GetDocTemplateListReq();
        docTemplateListReq.setAccessToken(accessToken);
        //模板归属方，指定获取该归属方的模板。**需检查授权**
        //如果未提供则表示查询该应用下的模板。
        docTemplateListReq.setOwnerId(OpenId.getInstance(IdTypeEnum.CORP.getCode(),null, openCorpId));
        //查询条件
        DocTemplateListFilterInfo docTemplateListFilterInfo = new DocTemplateListFilterInfo();
        //文档模板名称，如果传了该参数，会根据名称模糊匹配查询，最大长度100个字符。
        docTemplateListFilterInfo.setDocTemplateName("模板名称");
        docTemplateListReq.setListFilter(docTemplateListFilterInfo);
        //查询结果分页返回，此处指定第几页，如果不传默从第一页返回。页码从1开始，即首页为1
        docTemplateListReq.setListPageNo(1);
        //指定每页多少条数据，如果不传默认为100，单页最大100
        docTemplateListReq.setListPageSize(10);
        BaseRes<DocTemplateListRes> docTemplateListResBaseRes = docTemplateClient.getList(docTemplateListReq);
        ResultUtil.printLog(docTemplateListResBaseRes, openApiClient.getJsonStrategy());
    }

    /**
     * 获取文档模板详情
     *
     * **接口说明：**获取文档模板详情，包括文档模板的基本信息、填写和签章控件和区域信息等。
     *
     * **适用场景：**可通过该接口获取应用系统或应用系统的企业或个人用户名下的文档模板详情。
     */
    public static void docTempalteDetail() throws ApiException{
        DocTemplateDetailReq docTemplateDetailReq = new DocTemplateDetailReq();
        docTemplateDetailReq.setAccessToken(accessToken);
        //模板归属方，指定获取该归属方的模板。**需检查授权** 如果未提供则表示查询该应用下的模板。
        docTemplateDetailReq.setOwnerId(OpenId.getInstance(IdTypeEnum.CORP.getCode(),null,openCorpId));
        //文档模板id。该模板必须属于该应用。
        docTemplateDetailReq.setDocTemplateId("模板id");
        BaseRes<DocTemplateDetailRes> docTemplateDetailResBaseRes = docTemplateClient.getDetail(docTemplateDetailReq);
        ResultUtil.printLog(docTemplateDetailResBaseRes, openApiClient.getJsonStrategy());
    }

}
